<template>
	<div>
		<el-form :inline="true" :model="formInline" class="user-search">
			<el-form-item label=""><el-input size="small" v-model="formInline.banjiming" placeholder="输入班级名"></el-input></el-form-item>
			<el-form-item label=""><el-input size="small" v-model="formInline.zhuanye" placeholder="输入专业"></el-input></el-form-item>
			
			<el-form-item>
				<el-button size="small" type="warning" icon="el-icon-search" @click="search">搜索</el-button>
				
				<el-button size="small" type="success" icon="el-icon-s-data" @click="daochu()" v-if="userInfo.roles[0] == 'guanliyuan'">导出</el-button>
				<el-button size="small" type="danger" icon="el-icon-delete" @click="handleDeleteList()" v-if="userInfo.roles[0] == 'guanliyuan'">批量删除</el-button>
				
			</el-form-item>
			<el-form-item>
				<el-upload class="upload-demo" style="float: left; padding-right: 10px;" action='http://localhost:9999/zaixianfenban/upload' :headers='headers' :show-file-list='false' :on-success='handleDaoruSuccess' :before-upload='beforeDaoruUpload' ><el-button size="small" type="info" icon="el-icon-sell" v-if="userInfo.roles[0] == 'guanliyuan'">导入</el-button></el-upload>
			</el-form-item>
		</el-form>
		
		<el-table size="small" :data="listData" highlight-current-row v-loading="loading" border element-loading-text="拼命加载中" @selection-change="handleSelectionChange">
			<el-table-column align="center" type="selection" width="60"></el-table-column>
			<el-table-column sortable prop="banjiming" label="班级名"></el-table-column>
			<el-table-column sortable prop="zhuanye" label="专业"></el-table-column>
			<el-table-column sortable prop="yonghuming" label="用户名"></el-table-column>
			<el-table-column sortable prop="xingming" label="姓名"></el-table-column>
			<el-table-column sortable prop="shouji" label="手机"></el-table-column>
			<el-table-column sortable prop="gonghao" label="工号"></el-table-column>
			<el-table-column sortable prop="jiaoshixingming" label="教师姓名"></el-table-column>
			<el-table-column sortable prop="zhicheng" label="职称"></el-table-column>
			
			<el-table-column sortable prop="addtime" label="添加时间" width="160">
				<template slot-scope="scope">
					<div>{{scope.row.addtime|datePipe('yyyy-MM-dd hh:mm:ss')}}</div>
				</template>
			</el-table-column>
			
			<el-table-column align="center" label="操作" min-width="160">
				<template slot-scope="scope">
					
					<!--liangbuan-->
					<el-button size="mini" type="success" @click="handleEdit(scope.$index, scope.row)" v-if="userInfo.roles[0] == 'guanliyuan' ">编辑</el-button>
					<el-button size="mini" type="danger" @click="deleteZaixianfenban(scope.$index, scope.row)" v-if="userInfo.roles[0] == 'guanliyuan' ">删除</el-button>
					<el-button size='mini' type='primary' @click="handleDetail(scope.$index, scope.row)">详细</el-button>
					<!--zhixfuanniu-->
					
				</template>
			</el-table-column>
		</el-table>
		<Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
		
		<el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
			<el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
				<el-form-item  label="班级名" prop="banjiming"><el-input size="small" v-model="editForm.banjiming" auto-complete="off" placeholder="请输入班级名" style='width:50%'></el-input></el-form-item>
		<el-form-item  label="专业" prop="zhuanye"><el-input size="small" v-model="editForm.zhuanye" auto-complete="off" placeholder="请输入专业" style='width:50%'></el-input></el-form-item>
		<el-form-item  label='用户名' prop='yonghuming'><el-select size='small' v-model='editForm.yonghuming' placeholder='请选择用户名' @change="hsgxia2suiyonghuming"><el-option selected label='请选择用户名' value=''></el-option><el-option v-for="item in xueshengxinxis" :key="item.yonghuming" :label="item.yonghuming" :value="item.yonghuming"></el-option></el-select></el-form-item>
		<el-form-item  label="姓名" prop="xingming"><el-input size="small" v-model="editForm.xingming" auto-complete="off" placeholder="" style='width:50%' disabled></el-input></el-form-item>
		<el-form-item  label="手机" prop="shouji"><el-input size="small" v-model="editForm.shouji" auto-complete="off" placeholder="请输入手机" style='width:50%'></el-input></el-form-item>
		<el-form-item  label="工号" prop="gonghao"><el-input size="small" v-model="editForm.gonghao" auto-complete="off" placeholder="请输入工号" style='width:50%' disabled></el-input></el-form-item>
		<el-form-item  label="教师姓名" prop="jiaoshixingming"><el-input size="small" v-model="editForm.jiaoshixingming" auto-complete="off" placeholder="请输入教师姓名" style='width:50%' disabled></el-input></el-form-item>
		<el-form-item  label="职称" prop="zhicheng"><el-input size="small" v-model="editForm.zhicheng" auto-complete="off" placeholder="请输入职称" style='width:50%' disabled></el-input></el-form-item>
		
				
			</el-form>
			<div slot="footer" class="dialog-footer">
				<el-button size="small" @click="closeDialog">取消</el-button>
				<el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
			</div>
		</el-dialog>
			
			
			<el-dialog :title="title" :visible.sync="detailFormVisible" width="60%" @click="closeDialogdetail">
			<table width="100%" border="0"  align="center" cellpadding="3" cellspacing="1" class="table table-striped table-bordered table-hover">
								<tr>
									<td width='11%' height='40px'>班级名：</td><td width='39%'>{{editForm.banjiming}}</td>
     <td width='11%' height='40px'>专业：</td><td width='39%'>{{editForm.zhuanye}}</td></tr><tr>
     <td width='11%' height='40px'>用户名：</td><td width='39%'>{{editForm.yonghuming}}</td>
     <td width='11%' height='40px'>姓名：</td><td width='39%'>{{editForm.xingming}}</td></tr><tr>
     <td width='11%' height='40px'>手机：</td><td width='39%'>{{editForm.shouji}}</td>
     <td width='11%' height='40px'>工号：</td><td width='39%'>{{editForm.gonghao}}</td></tr><tr>
     <td width='11%' height='40px'>教师姓名：</td><td width='39%'>{{editForm.jiaoshixingming}}</td>
     <td width='11%' height='40px'>职称：</td><td width='39%'>{{editForm.zhicheng}}</td>
     </tr>
							</table>
			


			<div slot="footer" class="dialog-footer">
				<el-button size="small" @click="closeDialogdetail">关闭</el-button>

			</div>
		</el-dialog>
			<!--zhixfudhk-->
	</div>
</template>

<script>
import Pagination from "@/layout/pagination/Pagination";
import { zaixianfenbanList, zaixianfenbanSave, zaixianfenbanDelete,zaixianfenbanEdit,zaixianfenbanDeleteList } from '@/api/zaixianfenban/zaixianfenbanApi';
import {xueshengxinxiAllList,xueshengxinxiList} from "@/api/xueshengxinxi/xueshengxinxiApi";
				

import {Session} from "@/utils/storage";
import axios from 'axios';
export default {
	name: 'user',
	data() {
		return {
			loading: false, //是显示加载
			title: '',
			
			editFormVisible: false, //控制编辑页面显示与隐藏
			payVisible: false,
			tempdingdanxinxi: '',
			id: '',
			radio: '',
			detailFormVisible: false,
			
			
			
			editForm: {
			},
			user:[],
			username:'',
			cx:'',
			xueshengxinxis:[],
				
			rules: {
				banjiming: [{ required: true, message: '请输入班级名', trigger: 'blur' },
				],
				zhuanye: [{ required: true, message: '请输入专业', trigger: 'blur' },
				],
				shouji: [{ pattern: /^[1][3,4,5,7,8][0-9]{9}$/,required: true,message: '请输入正确的手机号',trigger: 'blur'}
				],
				
			},
			
			formInline: {
				page: 1,
				limit: 10,
			},
			
			
			listData: [],
			zaixianfenbans:[],
			
			checkmenu: [],
			pageparm: {
				currentPage: 1,
				pageSize: 10,
				total: 0
			}
		};
	},
	computed:{
		headers(){
			return {"token":Session.get("token")}
		}
	},
	watch: {
			'$route' (to, from) {
				// 路由发生变化页面刷新
				this.$router.go(0);
			}
		},
	components: {
		Pagination
	},
	created() {
		
		if (!Session.get('userInfo')) return false;
		this.userInfo = Session.get('userInfo');
		this.username=localStorage.getItem("username");
		this.cx=localStorage.getItem("cx");
		if(this.userInfo.roles[0] == 'yonghu'){this.formInline.yonghuming= this.username;}
		if(this.userInfo.roles[0] == 'jiaoshi'){this.formInline.gonghao= this.username;}
		
		this.getdata(this.formInline)
		this.getAllxueshengxinxi({});
				
	},
	methods: {
		
		//zxhifuff
		handleShenheList(){
				const zaixianfenbans = this.zaixianfenbans;
				if(zaixianfenbans.length == 0){
					this.$message({
						type: 'error',
						message: '请至少选择一项'
					})
				}else {
					this.$confirm('确定要批量审核吗?', '信息', {
						confirmButtonText: '确定',
						cancelButtonText: '取消',
						type: 'warning'
					}).then(() => {
						zaixianfenbans.forEach(item=> {
							let data = {...item, issh: 1}
							zaixianfenbanEdit(data).then(res => {})
						})
						this.getdata(this.formInline)
						this.$message({
							type: 'success',
							message: '批量审核成功！'
						})
					}).catch(() => {
						this.$message({
							type: 'info',
							message: '已取消批量审核'
						})
					})
				}
			},
		getdata(parameter) {
			zaixianfenbanList(parameter)
					.then(res => {
						this.loading = false
						if (res.success == false) {
							this.$message({
								type: 'info',
								message: res.msg
							})
						} else {
							this.listData = res.data.list
							
							
							
							// 分页赋值
							this.pageparm.currentPage = this.formInline.current
							this.pageparm.pageSize = this.formInline.currentNum
							this.pageparm.total = res.data.total
						}
					})
					.catch(err => {
						this.loading = false
						this.$message.error('菜单加载失败，请稍后再试！')
					})
		},
		
		// 分页插件事件
		callFather(parm) {
			this.formInline.current = parm.currentPage
			this.getdata(this.formInline)
		},
		hsgxia2suiyonghuming(){
			let yonghuming = this.editForm.yonghuming;
			this.xueshengxinxis.forEach(item=>{
				if(item.yonghuming == yonghuming){
					this.editForm.xingming = item.xingming
					
					
					this.$forceUpdate()
				}
			})
		},
		// 搜索事件
		search() {
			this.getdata(this.formInline)
		},
		//显示编辑界面
		handleEdit: function (index, row) {
			this.editFormVisible = true
			if (row != undefined && row != 'undefined') {
				this.title = '修改在线分班'
				this.editForm = row
			} else {
				this.title = '添加在线分班'
				this.editForm = {}
				this.editForm.gonghao= this.username;
				
				//zixdonxgbianxhao1
			}
		},
		daochu(){
			axios.get('/zaixianfenban/getExcel', {
				responseType: 'blob',
				headers: { token: Session.get("token"), 'Content-Type': 'application/x-download' }
			}).then((res) => {
				if (res.status === 200) {
					var a = document.createElement('a')
					var blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
					var href = window.URL.createObjectURL(blob)
					a.href = href
					a.download = '在线分班.xlsx'
					document.body.appendChild(a)
					a.click() 
					document.body.removeChild(a) 
					window.URL.revokeObjectURL(href)
				}
			}).catch((err) => {
				console.log(err)
			})
		},
		handleDaoruSuccess(res, file) {
				if(res.code == "0") {
					this.$message({
						type: 'success',
						message: '导入成功!'
					})
					this.getdata(this.formInline);
				}
			},
		beforeDaoruUpload(file) {
			const isJPG = file.type === 'application/vnd.ms-excel';
			if (!isJPG) {
				this.$message.error('上传只能是 excel 格式!');
			}
			return isJPG;
		},
		//zixdonxgbianxhao2
		
		handleDetail: function (index, row) {
			this.detailFormVisible = true
			if (row != undefined && row != 'undefined') {
				this.title = '在线分班详细'
				this.editForm = row
			}
			
		},
		closeDialogdetail() {
				this.getdata(this.formInline)
				this.detailFormVisible = false
			},
		//liangbuedit
		// 编辑、增加页面保存方法
		submitForm(editData) {
			
			this.$refs[editData].validate(valid => {
				if (valid) {
					if(this.editForm.id){
						zaixianfenbanEdit(this.editForm).then(res => {
							this.editFormVisible = false
							
							this.loading = false
							if (res.code == '0') {
								this.getdata(this.formInline)
								this.$message({
									type: 'success',
									message: '在线分班修改成功！'
								})
							} else {
								this.$message({
									type: 'info',
									message: res.msg
								})
							}
						}).catch(err => {
							this.editFormVisible = false
							this.loading = false
							this.getdata(this.formInline)
						if(err){
								this.$message.error(err)
							}else {
								this.$message.error('操作失败，请稍后再试！')
							}
						})
					}else {
						zaixianfenbanSave(this.editForm).then(res => {
							this.editFormVisible = false
							this.loading = false
							if (res.code == '0') {
								
								this.getdata(this.formInline)
								this.$message({
									type: 'success',
									message: '在线分班添加成功！'
								})
							} else {
								this.$message({
									type: 'info',
									message: res.msg
								})
							}
						}).catch(err => {
							this.editFormVisible = false
							this.loading = false
						if(err){
								this.$message.error(err)
							}else {
								this.$message.error('操作失败，请稍后再试！')
							}
						})
					}
				} else {
					return false
				}
			})
		},
		// 删除公司
		deleteZaixianfenban(index, row) {
			this.$confirm('确定要删除吗?', '信息', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				zaixianfenbanDelete(row.id).then(res => {
					if (res.code == '0') {
						this.$message({
								type: 'success',
							message: '在线分班已删除!'
						})
						this.getdata(this.formInline)
					} else {
						this.$message({
							type: 'info',
							message: res.msg
						})
					}
				}).catch(err => {
					this.loading = false
					this.$message.error('操作失败，请稍后再试')
				})
			}).catch(() => {
				this.$message({
					type: 'info',
					message: '已取消删除'
				})
			})
		},
		handleSelectionChange(val){
			this.zaixianfenbans = val;
		},
		handleDeleteList(){
			const zaixianfenbans = this.zaixianfenbans;
			if(zaixianfenbans.length == 0){
				this.$message({
					type: 'error',
					message: '请至少选择一项进行删除'
				})
			}else {
				this.$confirm('确定要批量删除吗?', '信息', {
					confirmButtonText: '确定',
					cancelButtonText: '取消',
					type: 'warning'
				}).then(() => {
					zaixianfenbanDeleteList(zaixianfenbans).then(res => {
						if (res.code == '0') {
							this.$message({
								type: 'success',
								message: '批量删除成功!'
							})
							this.getdata(this.formInline)
						} else {
							this.$message({
								type: 'info',
								message: res.msg
							})
						}
					}).catch(err => {
						this.loading = false
						this.$message.error('操作失败，请稍后再试')
					})
				}).catch(() => {
					this.$message({
						type: 'info',
						message: '已取消删除'
					})
				})
			}
		},
		//xuaxnzeshxifou
		
		
		getAllxueshengxinxi(parameter){xueshengxinxiList(parameter).then(res=>{if(res.code == '0'){this.xueshengxinxis = res.data.list}})},
				
		
		//youscwexnjiaxn
		// 关闭编辑、增加弹出框
		closeDialog() {
			this.getdata(this.formInline)
			this.editFormVisible = false
		}
	},
};
</script>

<style scoped lang="scss">
	@import './index.scss';
</style>
